#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
	int v,w;
}n[30];
int dp[30][30000];

int main()
{
	int N,m;
	cin>>N>>m;
	for(int i=1;i<=m;i++)
		cin>>n[i].w>>n[i].v;
	for(int i=1;i<=m;i++)
	{
		for(int j=N;j>0;j--)
		{
			if(j>=n[i].w)
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-n[i].w]+n[i].w*n[i].v);
			else
				dp[i][j]=dp[i-1][j];
		}
	}
	cout<<dp[m][N];
    return 0;
}
